#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
// // mykill -signumber pid
// int main(int argc, char *argv[])
// {
//     if (argc != 3)
//     {
//         std::cerr << "Usage: " << argv[0] << " -signumber pid" << std::endl;
//         return 1;
//     }
//     int number = std::stoi(argv[1] + 1); // 去掉-
//     pid_t pid = std::stoi(argv[2]);
//     int n = kill(pid, number);
//     return n;
// }

int main()
{
    while (true)
    {//kill调用系统命令向进程发送信号
         std::cout << "我是: " << getpid() << std::endl;
        sleep(1);
    }
}

// #include <iostream>
// #include <unistd.h>
// #include <signal.h>
// void handler(int signumber)
// {
//     std::cout << "我是: " << getpid() << ", 我获得了⼀个信号: " << signumber << std::endl;
// }

// int main()
// {
//     std::cout << "我是进程: " << getpid() << std::endl;
//     signal(SIGTSTP /*20*/, handler);
//     while (true)
//     {
//         std::cout << "I am a process, I am waiting signal!" << std::endl;
//         sleep(1);
//     }
// }

// #include <iostream>
// #include <unistd.h>
// #include <signal.h>
// void handler(int signumber)
// {
//     std::cout << "我是: " << getpid() << ", 我获得了⼀个信号: " << signumber << std::endl;
// }

// int main()
// {
//     std::cout << "我是进程: " << getpid() << std::endl;
//     signal(SIGQUIT /*3*/, handler);
//     while (true)
//     {
//         std::cout << "I am a process, I am waiting signal!" << std::endl;
//         sleep(1);
//     }
// }

// #include <iostream>
// #include <unistd.h>
// #include <signal.h>
// void handler(int signumber)
// {
//     std::cout << "我是: " << getpid() << ", 我获得了⼀个信号: " << signumber
//               << std::endl;
// }

// int main()
// {
//     std::cout << "我是进程: " << getpid() << std::endl;
//     //signal(SIGINT /*2*/, SIG_IGN); // 设置忽略信号的宏
//     signal(SIGINT /*2*/, SIG_DFL); // 执行默认信号的宏

//     while (true)
//     {
//         std::cout << "I am a process, I am waiting signal!" << std::endl;
//         sleep(1);
//     }
// }

// #include <iostream>
// #include <unistd.h>
// #include <signal.h>

// void handler(int signumber)
// {
//     std::cout << "我是：" << getpid() << ", 我获得了⼀个信号: " << signumber << std::endl;
// }

// int main()
// {
//     std::cout << "我是进程：" << getpid() << std::endl;
//     signal(SIGINT, handler);
//     while (true)
//     {
//         std::cout << "I am a process, I am waiting signal!" << std::endl;
//         sleep(1);
//     }
//     return 0;
// }

// // sig.cc
// #include <iostream>
// #include <unistd.h>
// int main()
// {
//     while (true)
//     {
//         std::cout << "I am a process, I am waiting signal!" << std::endl;
//         sleep(1);
//     }
// }